草庐IT

SQL ALTER TABLE 语句

全部标签

java - 多个准备好的语句或一个批处理

我的问题很简单,就在标题中。Google和堆栈溢出没有给我任何信息,所以我想是时候问一个问题了。我目前正在为用户注册到我的网站时进行sql查询。我总是只使用准备好的语句b/c可调用语句中的额外编码,并且常规语句的性能影响都被关闭。然而,这个查询让我想到了可能的替代方案,以替代我之前的“一刀切”(准备好的语句)方式。此查询共有4次数据库往返。步骤是将用户插入数据库,在结果集中取回生成的key(他们的用户ID)。获取用户ID并在相册表中插入一行。取回生成的key(专辑ID)获取相册ID并在图像表中插入一行。取回生成的key(图像ID)获取图像ID并使用图像ID更新用户表当前默认列旁白:对于

mysql - 在过程中的准备好的语句中使用定界符

编辑:请注意:我要求的东西是不可能的,如底部所述!因此,问题得到了回答。亲爱的堆栈溢出的人,我在存储过程中的预准备语句中遇到语法错误问题。我在运行该过程时遇到语法错误,但如果我手动执行“SELECT@sql;”返回的语法则不会出现这种情况。命令。它与定界符有关,因为如果我只有一个命令,它在过程中运行良好。为了便于复制,我没有在我的程序中使用任何表格:DROPPROCEDUREIFEXISTSstackoverflow_test;DELIMITER$$CREATEPROCEDUREstackoverflow_test()BEGINSET@sql=CONCAT('SELECT"test12

调用不同 SELECT 语句的 MySQL IF/CASE 语法

我在使用MySQL的IF或CASE语法时遇到问题过程是这样的:我有一个调用MySQL查询的PHP项目,假设PHP传递变量X。如果X不是0那么它应该执行如下查询:SELECT*FROMtableWHEREid=X但是如果X是0。然后它应该执行查询以仅选择所有记录:SELECT*FROMtable我不希望PHP中的条件根据PHP中的条件结果调用不同的MySQL查询。我希望根据传递的变量X在SQL查询中执行if/else条件。 最佳答案 SELECT*FROMtableWHERE$x=0orid=$x

PHP MySQL UPDATE 语句不工作

我有一个带有表(opendpu)的MySQL数据库,该表包含多个列,包括标题为“ECRNUM”和“PE_REQUIRED”的列。我只是想通过指定一些值来测试这个更新语句。我收到此错误:Array([0]=>42000[1]=>1064[2]=>YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'DOEWHEREECRNUM=81308'atline1)在我的一生中,我无法弄清楚这里出了什么问题。谁能帮忙?exec("SE

mysql - SQL 语句中的方括号 us 用于通配符

当我使用带有%通配符的方括号时,MySQL不会选择任何以数字开头的记录。Internet上的许多示例都说明这是正确的用法。有什么建议么?它也不适用于字母(a-d)范围。我正在运行MySQL3.2SELECT*FROMcustomersWHERElnameLIKE'[0-9]%'ORDERBYlnameASC或SELECT*FROMcustomersWHERElnameLIKE'[a-d]%'ORDERBYlnameASC 最佳答案 尽管我不相信MySQL在[]中支持带有常规LIKE子句的类似正则表达式的字符类(我也找不到releva

mysql - 将 SQL Select * 语句转换为 delete 语句

我有一个SQL语句可以从我的数据库中提取符合条件的记录。SELECT*FROM`t_questions`LEFTJOIN`t_syllabus`ON`t_syllabus`.`syllabus_id`=`t_questions`.`question_syl_reference_id`WHERE`t_syllabus`.`syllabus_training_block`='CPL';这可以正常工作并返回我想要的一切。我现在需要编写一个状态来删除使用相同条件的问题。到目前为止,我已经尝试过了,但出现错误。DELETEFROMt_questionsWHEREquestion_idIN(SEL

mysql - 在 where 子句中使用 OR 优化 sql 语句

在5Gb大小的消息表上运行此查询。问题是执行时间>3分钟。SELECTm.idFROMmessagesmLEFTJOINdialogdonm.id=d.midWHERE(SELECTcount(*)FROMdialogWHERE(m.from_id=uid1andm.user_id=uid2)OR(m.from_id=uid2andm.user_id=uid1))=0&&read_state=0LIMIT100我明白,通过NESTEDSELECTINWHERECLAUSE搜索是一种不好的做法,但还没有找到另一种选择此类行的方法。尝试将OR拆分为2个UNION语句,但它也很长。消息表结构

mysql - nodejs 如何用 2 条语句执行 mysql 查询

我想在Nodejs中用一个查询执行2个mysql语句。然而,这失败并出现错误:ER_PARSE_ERROR:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear我的Node命令和mysql查询如下所示。connection.query("UPDATE`table1`SET`count`=`count`+1WHERE`id`=?LIMIT1;INSERTINTO`table2`(`id`,`field1`,`datetime

php - 在 PHP 中准备 MySQLi 语句

对不起,如果我对此不熟悉。if(!isset($stmt_counttime)){$stmt_counttime=$mysqli->prepare("SELECTcount(1)ascountFROM`stop_times`where`stop_id`=?and`trip_id`=?LIMIT1");$stmt_counttime->bind_param('ss',$stop_id,$trip_id);}$stop_id=$data[3];$trip_id=$data[0];$stmt_counttime->execute();$stmt_counttime->bind_result(

php - 准备好的 SQL 语句不是 'preparing'

我正在尝试制作一个可以在我所有网站上使用的基本点击计数器。我有一个准备好的语句查询我的GoDaddyMySQL服务器和我的MAMPMySQL服务器,并且该语句不会“准备”。在这里:functionhit_counter($url){if($mysqli=newmysqli('localhost','root','','DB')){$crack="SELECThc-id,hc-url,hc-unique_hits,hc-total_hits,hc-last_viewedFROMhit_counterWHEREhc-url=?";if($stmt=$mysqli->prepare(crac